草庐IT

iOS UIScrollView 性能

全部标签

c++ - PPL容器性能

我正在编写一个服务器应用程序,它一次从多个来源获取数据并将其存储在它的内部数据库中(目前是一个std::set)。我刚刚查看了Microsoft的ConcRTPPL数据结构,想知道它们的效率与在std::unordered_set上使用细粒度互斥体相比如何。例如,两个代码片段之间是否存在很大的性能差异:voidStdWithMutex(void){std::ofstreamoutFile("Test.tmp");std::lock_guardlockGuard(m_mutex);//Iteratethroughthedataandwriteittoafile://m_setDatais

c++ - 在什么平台上 memmove 和 memcpy 会有显着的性能差异?

我知道memmove和memcpy的区别在于memmove处理内存重叠情况。我检查了libgcc中的实现并得到了这篇文章[memcpyperformance]来自英特尔网站。在libgcc中,memmove类似于memcpy,都是一个字节一个字节地走,所以即使经过优化,性能应该也差不多。有人测过这个得到这篇文章memcopy,memmove,andSpeedoverSafety.即使我不认为memmove可以比memcpy更快,但至少在Intel平台上应该没有太大区别。那么在什么平台上以及如何,memcpy可以比memmove快得多,如果没有,为什么要提供两个类似的函数而不是仅仅mem

c++ - 具有 C++ 性能问题/滞后峰值的 Lua

我正在开发一款游戏,我使用(SFML)C++作为核心,使用Lua作为Actor脚本。但是,我遇到了一些性能问题,我不确定哪里出了问题。我创建了一个测试程序来显示我遇到的问题。基本上,有时当我从C++调用Lua函数时,返回时间比平时长得多。我需要我的游戏以60fps的速度运行,大部分时间都可以,但偶尔一个或多个函数调用会比平时花费更长的时间。我的第一个想法是它是内存管理器,但关闭它似乎并没有消除尖峰。我知道有几款游戏使用Lua,我想这对他们来说不是问题。人们建议使用LuaJIT可以解决这个问题,所以我下载并设置了LuaJIT(使用lua5.1)。我的平均时间有了显着改善,但尖峰仍然一如既

c++ - QPainter性能高帧率

我正在尝试在QPainter(在OpenGL小部件中)中以60fps的速度显示视频我遇到一个问题,有时绘图花费的时间太长,并且在使用QPainter时会发生下一个重绘事件-这会生成警告和随机崩溃。几个问题:是否有一种“Qt方式”可以有效地互锁重绘调用,因为大概QPainter知道它正在被使用-或者我只是使用我的平台互斥支持?有没有比只调用repaint()的计时器更好的方式来绘制高帧率(当然也需要锁定到VSync)? 最佳答案 尝试使用update()而不是repaint()。Thisfunctiondoesnotcauseanim

性能优化例子:使用Performance工具分析性能瓶颈,解决页面卡顿!

对于前端的性能优化,优化手段其实是非常多的,但是不能盲目的进行优化,一定要先分析出项目的性能瓶颈,否则只会做无用功。那么如何才能更好的分析出项目的瓶颈呢?其实最关键的就是要分析页面的整个加载过程,找出有问题的地方再进行优化。使用谷歌浏览器自带的Performance工具可以帮我们解决这个问题,下面通过一个例子来进行分析优化!在优化之前,我们先要了解一些知识,比如浏览器的渲染帧、Performance工具的使用,这样才有助于更好地理解优化的过程!浏览器的渲染帧对于渲染,我们首先需要了解一个概念:设备刷新率。设备刷新率是设备屏幕渲染的频率,通俗一点就是,把屏幕当作墙,设备刷新率就是多久重新粉刷一次

C++多线程编程:解锁性能与并发的奥秘

今天我们将深入探讨C++中的多线程编程,揭示多线程如何解锁性能潜力,提高程序的并发性能。什么是多线程?在计算机科学中,多线程是指一个进程(程序的执行实例)中的多个线程同时执行。每个线程都是程序中独立的控制流,可以执行独立的任务。相比于单线程,多线程能够更有效地利用计算机的多核处理器,提高程序的执行效率。C++标准库提供了丰富的多线程支持,通过 头文件,我们可以轻松创建和管理多线程。创建线程,让我们通过一个简单的例子来了解如何在C++中创建线程:#include//线程执行的函数voidprintHello(){std::cout在这个例子中,我们通过std::thread类创建了一个新的线程,

c++ - 性能 std::strstr 与 std::string::find

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:C++string::findcomplexity最近我注意到函数std::string::find比函数std::strstr慢一个数量级-在我的GCC4.7环境中在Linux上。性能差异取决于字符串的长度和硬件架构。差异的原因似乎很简单:std::string::find基本上在循环中调用std::memcmp-具有时间复杂度O(m*n)。相比之下,std::strstr针对硬件架构进行了高度优化(例如使用SSE指令)并使用更复杂的字符串匹配算法(显然是Knuth-Morris-Pratt)。我也很惊讶没

c++ - Matlab fmincons 和 C++ 的 NLP 求解器(如 ipopt)之间的性能差距是什么?

我将要为实时应用程序编写一个算法,其中涉及一些高维NLP(非线性规划)。在实现之前,我需要对我的算法进行计时,看看它是否适用于实时应用,因此我使用Matlab的内置fmincons作为基准。经验表明,matlab算法往往比C++算法慢很多,所以我想估计在这种特殊情况下我可以期待什么样的性能提升?因为我的工作大多与实时应用相关,所以我很少使用NLP(非线性编程),所以我问了我的同事,他们推荐我尝试ipopt作为开始,我在它的网站上搜索了一下,没有基准那里反对Matlab,也没有太多关于他们算法细节的话题(至少在Matlab中,不难检查他们算法的细节),所以我基本上对准确性/鲁棒性/最优性

java - 比较 c#、c++ 和 java 性能(c# 的奇怪行为)

我正在使用c++、c#和java实现Floyd–Warshall算法。在每种语言中,我在测试结果后都使用顺序和并行实现:(消耗时间仅针对主要功能和读取文件,变量的Inti和...未测量。)在这里下载源SourceCodesC++IDE:Netbeans编译器:MinGW-4.8.1连续时间:9.333000平行时间:2.539000为Pralel使用OpenMpifNumOfThreads=1thenisSequentialelseisParallel变量#definen1000/*Thennumberofnodes*/doubledist[n][n];voidfloyd_warsha

c++ - Eigen 3.3.0 与 3.2.10 的性能回归?

我们正处于portingourcodebase的过程中转到Eigen3.3(所有32字节对齐问题都是一项艰巨的任务)。然而,有几个地方的性能似乎受到了严重影响,这与预期相反(鉴于对FMA和AVX的额外支持,我期待一些加速......)。这些包括特征值分解和matrix*matrix.transpose()*vector产品。我已经编写了两个最小的工作示例来进行演示。所有测试都在最新的ArchLinux系统上运行,使用IntelCorei7-4930KCPU(3.40GHz),并使用g++版本6.2.1编译。1。特征值分解:使用Eigen3.3.0进行简单的自伴随特征值分解所需的时间是使